import Vue from "vue"
//对于axios进行二次封装
import axios from "axios"
import { Toast } from 'vant';
Vue.use(Toast);
//1.利用axios对象的方法create，去创建一个axios实例
//2:request就是axios，只不过稍微配置一下
const requests = axios.create({
  //配置对象
  //代表请求超时的时间5s
  baseURL:'http://kumanxuan1.f3322.net:8001',
  timeout:5000,
});
//请求拦截器：在发请求之前，请求拦截器可以检测到可以在请求发出去前做一些事
requests.interceptors.request.use((config) => {
    // ！！！在这个函数中，可以去做一些请求发出去之前的准备工作，例如把token添加请求头
    let token = localStorage.getItem("token");
    if(token){
      // 把token设置到请求头中
      config.headers["X-Nideshop-Token"] = token
    }
    // 每一个请求加载的提示展示
    // Toast.loading({
    //   message: '加载中...',
    //   forbidClick: true,
    // });
  //config：配置对象，对象里面有一个属性很重要，headers请求头
  return config;
});

//相应拦截器
requests.interceptors.response.use((res)=>{
  //成功的回调函数：服务器相应数据回来以后，响应拦截器可以检测到，可以做一些事情
  
  return res.data;
},(error) =>{
  //响应失败的回调函数
  return Promise.reject(new Error('faile')); 
})

//对外暴露
export default requests;